package com.bob.like.util;

import com.bob.like.constant.ThumbConstant;

/**
 * Redis Key 工具类，用于生成统一规范的 Redis 键名
 */
public class RedisKeyUtil {

    /**
     * 获取用户点赞博客的 Redis Key
     * 结构：thumb:user:{userId}:blog:{blogId}
     */
    public static String getUserThumbKey(Long userId, Long blogId) {
        return ThumbConstant.USER_THUMB_KEY_PREFIX.formatted(userId.toString(), blogId.toString());
    }

    /**
     * 获取临时点赞记录的 Redis Key
     * 结构：thumb:temp:{time}
     */
    public static String getTempThumbKey(String time) {
        return ThumbConstant.TEMP_THUMB_KEY_PREFIX.formatted(time);
    }

    /**
     * 获取某篇博客的点赞总数 Key
     * 结构：thumb:blog:{blogId}:sum
     */
    public static String getThumbSum(String blogId) {
        return ThumbConstant.THUMB_SUM_KEY_PREFIX.formatted(blogId);
    }

    /**
     * 获取用户当日点赞计数 Key（硬编码版本）
     * 建议替换为常量类中的模板字符串
     * 结构：thumb:blog:{blogId}:user:{userId}:{date}
     */
    public static String getUserDailyThumbCountKey(Long blogId, Long userId, String date) {
        return ThumbConstant.USER_DAILY_THUMB_KEY.formatted(blogId, userId, date);
    }

    /**
     * 获取最近点赞记录 Key
     * 结构：thumb:blog:{blogId}:recent
     */
    public static String getRecentThumbKey(Long blogId) {
        return ThumbConstant.RECENT_THUMB_KEY.formatted(blogId);
    }
}
